home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / music_utilities / pt037.dms / pt037.adf / docs / P40B_Replay.S.pp / P40B_Replay.S
Text File  |  1989-07-26  |  14KB  |  802 lines

  1. *******************************
  2. *        Player v4.0b ®       *
  3. *         Lev6-version        *
  4. *          Revision 3         *
  5. *    © 1992 Jarno Paananen    *
  6. *     All rights reserved     *
  7. *******************************
  8.  
  9. ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  10. ;­ call 'P40_init' to initialize the playroutine ­
  11. ;­ A0 --> Modules address             ­
  12. ;­ A1 --> Samples' address or NULL         ­
  13. ;­ A6 --> Customchip baseaddress ($DFF000)     ­
  14. ;­ returns -1 in D0 if not a correct module     ­
  15. ;­ Used regs: A0/A1/A3/D0/D1             ­
  16. ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  17.  
  18. P40_init
  19.     cmpi.l    #`P40B`,(a0)+
  20.     beq.b    P00
  21.     moveq    #-1,d0
  22.     rts
  23.  
  24. P00    lea    P0(pc),a3
  25.     move.l    a0,P72-P0(a3)
  26.  
  27.     move.l    a0,d0
  28.     add.l    d0,4(a0)
  29.     add.l    d0,8(a0)
  30.     add.l    d0,12(a0)
  31.  
  32.     move.l    a1,d0
  33.     beq.b    P1
  34.     move.l    a1,12(a0)
  35.  
  36. P1    move.l    12(a0),d0
  37.     moveq    #0,d1
  38.     move.b    2(a0),d1
  39.     subq    #1,d1
  40.     lea    16(a0),a1
  41. P2    add.l    d0,(a1)
  42.     add.l    d0,6(a1)
  43.     lea    16(a1),a1
  44.     dbra    d1,P2
  45.  
  46.     lea    P63(pc),a1
  47.     moveq    #20,d0
  48. P3    clr    (a1)+
  49.     dbf    d0,P3
  50.  
  51.     lea    P64(pc),a1
  52.     moveq    #20,d0
  53. P4    clr    (a1)+
  54.     dbf    d0,P4
  55.  
  56.     lea    P65(pc),a1
  57.     moveq    #20,d0
  58. P5    clr    (a1)+
  59.     dbf    d0,P5
  60.  
  61.     lea    P66(pc),a1
  62.     moveq    #20,d0
  63. P6    clr    (a1)+
  64.     dbf    d0,P6
  65.  
  66.     move.l    8(a0),a1
  67.     move.l    a1,P6F-P0(a3)
  68.     moveq    #0,d1
  69.     move    (a1)+,d1
  70.     add.l    4(a0),d1
  71.     move.l    d1,32+P63-P0(a3)
  72.     moveq    #0,d1
  73.     move    (a1)+,d1
  74.     add.l    4(a0),d1
  75.     move.l    d1,32+P64-P0(a3)
  76.     moveq    #0,d1
  77.     move    (a1)+,d1
  78.     add.l    4(a0),d1
  79.     move.l    d1,32+P65-P0(a3)
  80.     moveq    #0,d1
  81.     move    (a1)+,d1
  82.     add.l    4(a0),d1
  83.     move.l    d1,32+P66-P0(a3)
  84.     move.l    a1,P6C-P0(a3)
  85.  
  86.     move.l    4(a0),P70-P0(a3)
  87.  
  88.     lea    P62(pc),a0
  89.     move.l    a0,P71-P0(a3)
  90.  
  91.     move    #63,P68-P0(a3)
  92.     move    #6,P69-P0(a3)
  93.     move    #5,P6A-P0(a3)
  94.     clr    P6B-P0(a3)
  95.     clr.l    P6D-P0(a3)
  96.     clr    (a3)
  97.  
  98.     move.b    #$3f,$bfdd00
  99.     move.b    #$81,$bfdd00
  100.     move.b    #151,$bfd400
  101.     move.b    #1,$bfd500
  102.     move.b    #$90,$bfde00
  103.     move    #$6000,$9c(a6)
  104.     move    #$a000,$9a(a6)
  105.  
  106.     move.l    $78.w,P73-P0(a3)
  107.     or.b    #2,$bfe001
  108.     move    #$f,$96(a6)
  109.  
  110.     moveq    #0,d0
  111.  
  112.     lea    P61(pc),a0
  113.     move.l    a0,$78.w
  114.  
  115.     clr    $a8(a6)
  116.     clr    $b8(a6)
  117.     clr    $c8(a6)
  118.     clr    $d8(a6)
  119.     rts
  120.  
  121. ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  122. ;­        call 'P40_end' to stop music       ­
  123. ;­ A6 --> Customchip baseaddress ($DFF000)   ­
  124. ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  125. P40_end    clr    $a8(a6)
  126.     clr    $b8(a6)
  127.     clr    $c8(a6)
  128.     clr    $d8(a6)
  129.     move.l    P73(pc),$78.w
  130.     rts
  131.  
  132. ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  133. ;­ call 'P40_music' every frame to play the music ­
  134. ;­ A6 --> Customchip baseaddress ($DFF000)      ­
  135. ;­          Used regs: a0-a6/d0-d7          -
  136. ;­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  137. P40_music
  138.     lea    P0(pc),a3
  139.  
  140.     moveq    #44,d6
  141.     moveq    #16,d7
  142.  
  143.     move    (a3),d4
  144.     addq    #1,d4
  145.     cmpi    P69(pc),d4
  146.     beq.w    P2E
  147.  
  148.     lea    P63(pc),a5
  149.     lea    $a0(a6),a4
  150.  
  151.     move    d4,(a3)
  152.  
  153.     moveq    #3,d5
  154. P7    tst    30(a5)
  155.     beq.w    P1C
  156.     moveq    #$f,d0
  157.     and    (a5),d0
  158.     add    d0,d0
  159.     move    P8(pc,d0),d0
  160.     jmp    P8(pc,d0)
  161.  
  162. P8    dc    P1C-P8,P1D-P8,P1F-P8,P19-P8,P58-P8,P16-P8,P55-P8,P5B-P8
  163.     dc    PE-P8,P1C-P8,P13-P8,P1C-P8,P1C-P8,P1C-P8,P9-P8,P1C-P8
  164.  
  165. P9    move.b    2(a5),d0
  166.     and.b    #$f0,d0
  167.     cmp    #$90,d0
  168.     beq.b    PB
  169.     cmp    #$c0,d0
  170.     beq.b    PA
  171.     cmp    #$d0,d0
  172.     bne.w    P1C
  173.  
  174.     moveq    #$f,d0
  175.     and.b    2(a5),d0
  176.     cmpi    (a3),d0
  177.     bne.w    P1C
  178.     move    42(a5),d0
  179.     or    #$8000,d0
  180.     or    d0,P67-P0(a3)
  181.     move.l    4(a5),a1
  182.     move.l    (a1)+,(a4)
  183.     move    (a1),4(a4)
  184.     move.b    #%10010001,$bfde00
  185.     lea    P60(pc),a1
  186.     move.l    a1,$78.w
  187.     bra.w    P1C
  188.  
  189. PA    moveq    #$f,d0
  190.     and.b    2(a5),d0
  191.     cmpi    (a3),d0
  192.     bne.w    P1C
  193.     clr    8(a4)
  194.     clr    14(a5)
  195.     bra.w    P1C
  196.  
  197. PB    subq    #1,26(a5)
  198.     bne.w    P1C
  199.     move    42(a5),d0
  200.     move    d0,$96(a6)
  201.     or    #$8000,d0
  202.     or    d0,P67-P0(a3)
  203.     move.l    4(a5),a1
  204.     move.l    (a1)+,(a4)
  205.     move    (a1),4(a4)
  206.     move.b    #%10010001,$bfde00
  207.     lea    P60(pc),a1
  208.     move.l    a1,$78.w
  209.     moveq    #$f,d0
  210.     and.b    2(a5),d0
  211.     move    d0,26(a5)
  212.     bra.w    P1C
  213.  
  214. PD    dc.b 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0,1
  215.  
  216. PE    move    (a3),d0
  217.     move.b    PD(pc,d0),d0
  218.     beq.b    PF
  219.     btst    #0,d0
  220.     bne.b    P10
  221.     moveq    #$f,d0
  222.     and.b    2(a5),d0
  223.     bra.b    P11
  224. PF    moveq    #0,d0
  225.     bra.b    P11
  226. P10    moveq    #0,d0
  227.     move.b    2(a5),d0
  228.     lsr.b    #4,d0
  229. P11    add    d0,d0
  230.     add    28(a5),d0
  231.     move    P12(pc,d0),6(a4)
  232.     bra.w    P1C
  233.  
  234. P12    dc    856,856,808,762,720,678,640,604,570,538,508,480,453
  235.     dc    428,404,381,360,339,320,302,285,269,254,240,226
  236.     dc    214,202,190,180,170,160,151,143,135,127,120,113
  237.     dc    850,850,802,757,715,674,637,601,567,535,505,477,450
  238.     dc    425,401,379,357,337,318,300,284,268,253,239,225
  239.     dc    213,201,189,179,169,159,150,142,134,126,119,113
  240.     dc    844,844,796,752,709,670,632,597,563,532,502,474,447
  241.     dc    422,398,376,355,335,316,298,282,266,251,237,224
  242.     dc    211,199,188,177,167,158,149,141,133,125,118,112
  243.     dc    838,838,791,746,704,665,628,592,559,528,498,470,444
  244.     dc    419,395,373,352,332,314,296,280,264,249,235,222
  245.     dc    209,198,187,176,166,157,148,140,132,125,118,111
  246.     dc    832,832,785,741,699,660,623,588,555,524,495,467,441
  247.     dc    416,392,370,350,330,312,294,278,262,247,233,220
  248.     dc    208,196,185,175,165,156,147,139,131,124,117,110
  249.     dc    826,826,779,736,694,655,619,584,551,520,491,463,437
  250.     dc    413,390,368,347,328,309,292,276,260,245,232,219
  251.     dc    206,195,184,174,164,155,146,138,130,123,116,109
  252.     dc    820,820,774,730,689,651,614,580,547,516,487,460,434
  253.     dc    410,387,365,345,325,307,290,274,258,244,230,217
  254.     dc    205,193,183,172,163,154,145,137,129,122,115,109
  255.     dc    814,814,768,725,684,646,610,575,543,513,484,457,431
  256.     dc    407,384,363,342,323,305,288,272,256,242,228,216
  257.     dc    204,192,181,171,161,152,144,136,128,121,114,108
  258.     dc    907,907,856,808,762,720,678,640,604,570,538,508,480
  259.     dc    453,428,404,381,360,339,320,302,285,269,254,240
  260.     dc    226,214,202,190,180,170,160,151,143,135,127,120
  261.     dc    900,900,850,802,757,715,675,636,601,567,535,505,477
  262.     dc    450,425,401,379,357,337,318,300,284,268,253,238
  263.     dc    225,212,200,189,179,169,159,150,142,134,126,119
  264.     dc    894,894,844,796,752,709,670,632,597,563,532,502,474
  265.     dc    447,422,398,376,355,335,316,298,282,266,251,237
  266.     dc    223,211,199,188,177,167,158,149,141,133,125,118
  267.     dc    887,887,838,791,746,704,665,628,592,559,528,498,470
  268.     dc    444,419,395,373,352,332,314,296,280,264,249,235
  269.     dc    222,209,198,187,176,166,157,148,140,132,125,118
  270.     dc    881,881,832,785,741,699,660,623,588,555,524,494,467
  271.     dc    441,416,392,370,350,330,312,294,278,262,247,233
  272.     dc    220,208,196,185,175,165,156,147,139,131,123,117
  273.     dc    875,875,826,779,736,694,655,619,584,551,520,491,463
  274.     dc    437,413,390,368,347,328,309,292,276,260,245,232
  275.     dc    219,206,195,184,174,164,155,146,138,130,123,116
  276.     dc    868,868,820,774,730,689,651,614,580,547,516,487,460
  277.     dc    434,410,387,365,345,325,307,290,274,258,244,230
  278.     dc    217,205,193,183,172,163,154,145,137,129,122,115
  279.     dc    862,862,814,768,725,684,646,610,575,543,513,484,457
  280.     dc    431,407,384,363,342,323,305,288,272,256,242,228
  281.     dc    216,203,192,181,171,161,152,144,136,128,121,114
  282.  
  283. P13    move.b    2(a5),d0
  284.     sub.b    d0,14+1(a5)
  285.     bpl.b    P14
  286.     clr    14(a5)
  287.     clr    8(a4)
  288.     bra.w    P1C
  289. P14    moveq    #64,d0
  290.     cmp    14(a5),d0
  291.     bge.b    P15
  292.     move    d0,14(a5)
  293.     move    d0,8(a4)
  294.     bra.b    P1C
  295. P15    move    14(a5),8(a4)
  296.     bra.b    P1C
  297.  
  298. P16    move.b    2(a5),d0
  299.     sub.b    d0,14+1(a5)
  300.     bpl.b    P17
  301.     clr    14(a5)
  302.     clr    8(a4)
  303.     bra.b    P19
  304. P17    moveq    #64,d0
  305.     cmp    14(a5),d0
  306.     bge.b    P18
  307.     move    d0,14(a5)
  308. P18    move    14(a5),8(a4)
  309.  
  310. P19    move    18(a5),d0
  311.     beq.b    P1C
  312.     move    20(a5),d1
  313.     cmp    16(a5),d0
  314.     blt.b    P1A
  315.  
  316.     add    d1,16(a5)
  317.     cmp    16(a5),d0
  318.     bgt.b    P1B
  319.     move    d0,16(a5)
  320.     clr    18(a5)
  321.     move    d0,6(a4)
  322.     bra.b    P1C
  323.  
  324. P1A    sub    d1,16(a5)
  325.     cmp    16(a5),d0
  326.     blt.b    P1B
  327.     move    d0,16(a5)
  328.     clr    18(a5)
  329. P1B    move    16(a5),6(a4)
  330.  
  331. P1C    add    d6,a5
  332.     add    d7,a4
  333.     dbf    d5,P7
  334.  
  335.     cmp    P6A(pc),d4
  336.     beq.b    P21
  337.     rts
  338.  
  339. P1D    moveq    #0,D0
  340.     move.b    2(a5),d0
  341.     sub    d0,16(a5)
  342.     moveq    #113,d0
  343.     cmpi    16(a5),d0
  344.     ble.b    P1E
  345.     move    d0,16(a5)
  346.     move    d0,6(a4)
  347.     bra.b    P1C
  348. P1E    move    16(a5),6(a4)
  349.     bra.b    P1C
  350.  
  351. P1F    moveq    #0,d0
  352.     move.b    2(a5),d0
  353.     add    d0,16(a5)
  354.     cmp    #856,16(a5)
  355.     ble.b    P20
  356.     move.w    #856,d0
  357.     move    d0,16(a5)
  358.     move    d0,6(a4)
  359.     bra.b    P1C
  360. P20    move    16(a5),6(a4)
  361.     bra.b    P1C
  362.  
  363. P21    tst    P6D-P0(a3)
  364.     beq.b    P22
  365.     subq    #1,P6D-P0(a3)
  366.     rts
  367.  
  368. P22    lea    P63(pc),a5
  369.     move.l    P72(pc),a0
  370.     move.l    P70(pc),a4
  371.  
  372.     moveq    #3,d5
  373. P23    tst.b    3(a5)
  374.     beq.b    P25
  375.     bmi.b    P24
  376.  
  377.     subq.b    #1,3(a5)
  378.     clr    30(a5)
  379.     add    d6,a5
  380.     dbf    d5,P23
  381.     bra.b    P2B
  382.  
  383. P24    addq.b    #1,3(a5)
  384.     bra.b    P29
  385.  
  386. P25    tst.b    40+1(a5)
  387.     beq.b    P26
  388.  
  389.     subq.b    #1,40+1(a5)
  390.     addq.l    #4,36(a5)
  391.     move.l    36(a5),a2
  392.     move.l    (a2),(a5)
  393.     bra.b    P29
  394.  
  395. P26    move.l    32(a5),a2
  396.     tst.b    (a2)
  397.     bmi.b    P27
  398.     move.l    (a2),(a5)
  399.     bra.b    P28
  400.  
  401. P27    move    (a2)+,40(a5)
  402.     move    (a2),d0
  403.     lea    (a4,d0),a2
  404.     move.l    (a2),(a5)
  405.     move.l    a2,36(a5)
  406. P28    addq.l    #4,32(a5)
  407.  
  408. P29    move    (a5),d0
  409.     st    30(a5)
  410.  
  411.     and    #$1f0,d0
  412.     beq.b    P2A
  413.     lea    (a0,d0),a1
  414.     move.l    a1,4(a5)
  415.     move.l    12(a1),12(a5)
  416.  
  417. P2A    add    d6,a5
  418.     dbf    d5,P23
  419.  
  420. P2B    subq    #1,P68-P0(a3)
  421.     bpl.b    P2D
  422.  
  423.     move    #63,P68-P0(a3)
  424.     move.l    P6C-P0(a3),a1
  425.     move    (a1)+,d0
  426.     bpl.b    P2C
  427.     move.l    P6F(pc),a1
  428.     move    (a1)+,d0
  429. P2C    lea    (a4,d0),a2
  430.     move.l    a2,32+P63-P0(a3)
  431.     move    (a1)+,d0
  432.     lea    (a4,d0),a2
  433.     move.l    a2,32+P64-P0(a3)
  434.     move    (a1)+,d0
  435.     lea    (a4,d0),a2
  436.     move.l    a2,32+P65-P0(a3)
  437.     move    (a1)+,d0
  438.     add    d0,a4
  439.     move.l    a4,32+P66-P0(a3)
  440.     move.l    a1,P6C-P0(a3)
  441. P2D    rts
  442.  
  443. P2E    clr    (a3)
  444.     tst    P6E-P0(a3)
  445.     beq.b    P2F
  446.     subq    #1,P6E-P0(a3)
  447.     rts
  448.  
  449. P2F    ;tst    P6B-P0(a3)        ;Remove colons if you use P69 1
  450.     ;beq.b    P30
  451.     ;bsr.w    P21
  452.     
  453. P30    lea    P63(pc),a5
  454.     lea    $a0(a6),a4
  455.     lea    P12(pc),a2
  456.  
  457.     move.b    #%10010001,$bfde00
  458.     lea    P60(pc),a1
  459.     move.l    a1,$78.w
  460.  
  461.     move    #$8000,d4
  462.     moveq    #3,d5
  463. P31    tst    30(a5)
  464.     beq.b    P35
  465.  
  466.     moveq    #$f,d1
  467.     and    (a5),d1
  468.     subq    #3,d1
  469.     beq.b    P33
  470.     subq    #2,d1
  471.     beq.b    P34
  472.  
  473.     moveq    #$7e,d0
  474.     and.b    (a5),d0
  475.     beq.b    P32
  476.     clr.b    23(a5)
  477.     add    12(a5),d0
  478.     move    d0,28(a5)
  479.     move    (a2,d0),16(a5)
  480.     move    42(a5),d0
  481.     move    d0,$96(a6)
  482.     eor    d0,d4
  483.  
  484.     subq    #4,d1
  485.     beq.b    P36
  486.  
  487.     move.l    4(a5),a1
  488.     move.l    (a1)+,(a4)
  489.     move    (a1),4(a4)
  490.  
  491. P32    moveq    #$f,d0
  492.     and    (a5),d0
  493.     lea    P5F(pc),a1
  494.     add    d0,d0
  495.     add    (a1,d0),a1
  496.     jmp    (a1)
  497.  
  498. P33    move.b    2(a5),d0
  499.     beq.b    P34
  500.     move.b    d0,20+1(a5)
  501. P34    moveq    #$7e,d0
  502.     and.b    (a5),d0
  503.     beq.b    P35
  504.     add    12(a5),d0
  505.     move    d0,28(a5)
  506.     move    (a2,d0),18(a5)
  507. P35    move    16(a5),6(a4)
  508.     move    14(a5),8(a4)
  509.  
  510.     add    d6,a5
  511.     add    d7,a4
  512.     dbf    d5,P31
  513.  
  514.     move    d4,P67-P0(a3)
  515.     rts
  516.  
  517. P36    moveq    #0,d1
  518.     move.b    2(a5),d1
  519.     lsl    #8,d1
  520.     move.l    4(a5),a1
  521.     move.l    (a1)+,d0
  522.     add.l    d1,d0
  523.     move.l    d0,(a4)
  524.     asr    #1,d1
  525.     move    (a1),d0
  526.     sub    d1,d0
  527.     bpl.b    P37
  528.     move.l    -4(a1),(a4)
  529.     moveq    #1,d0
  530. P37    move    d0,4(a4)
  531.     bra.b    P35
  532.  
  533. P38    move.b    2(a5),14+1(a5)
  534.     bra.b    P35
  535.  
  536. P39    moveq    #0,d0
  537.     move.b    2(a5),d0
  538.     asl    #2,d0
  539.     add.l    P6F(pc),d0
  540.     move.l    d0,P6C-P0(a3)
  541.  
  542. P40    move    #63,P68-P0(a3)
  543.     move.l    P6C-P0(a3),a1
  544.     move.l    P70(pc),a2
  545.     move    (a1)+,d0
  546.     bpl.b    P41
  547.     move.l    P6F(pc),a1
  548.     move    (a1)+,d0
  549. P41    movem    (a1)+,d1-d3
  550.     move.l    a1,P6C-P0(a3)
  551.     lea    (a2,d0),a1
  552.     move.l    a1,32+P63-P0(a3)
  553.     lea    (a2,d1),a1
  554.     move.l    a1,32+P64-P0(a3)
  555.     lea    (a2,d2),a1
  556.     move.l    a1,32+P65-P0(a3)
  557.     add    d3,a2
  558.     move.l    a2,32+P66-P0(a3)
  559.     bra.w    P35
  560.  
  561. P42    move.b    2(a5),d0
  562.     beq.w    P35
  563.     move.b    d0,d1
  564.     move.b    22(a5),d2
  565.     and.b    #$f,d0
  566.     beq.b    P43
  567.     and.b    #$f0,d2
  568.     or.b    d0,d2
  569. P43    and.b    #$f0,d1
  570.     beq.b    P44
  571.     and.b    #$f,d2
  572.     or.b    d1,d2
  573. P44    move.b    d2,22(a5)
  574.     bra.w    P35
  575.  
  576. P45    move.b    2(a5),d0
  577.     beq.w    P35
  578.     move.b    d0,d1
  579.     move.b    24(a5),d2
  580.     moveq    #$f,d3
  581.     and.b    d3,d0
  582.     beq.b    P46
  583.     and.b    #$f0,d2
  584.     or.b    d0,d2
  585. P46    and.b    #$f0,d1
  586.     beq.b    P47
  587.     and.b    d3,d2
  588.     or.b    d1,d2
  589. P47    move.b    d2,24(a5)
  590.     bra.w    P35
  591.  
  592. P48    move.b    2(a5),d0
  593.     and.b    #$f0,d0
  594.     lsr    #3,d0
  595.     move    P49(pc,d0),d0
  596.     jmp    P49(pc,d0)
  597.  
  598. P49    dc    P4A-P49,P4B-P49,P4C-P49,P35-P49,P35-P49,P4E-P49,P35-P49
  599.     dc    P35-P49,P35-P49,P4F-P49,P4D-P49,P50-P49,P35-P49,P51-P49
  600.     dc    P52-P49,P35-P49
  601.  
  602. P4A    move.b    2(a5),d0
  603.     and.b    #$fd,$bfe001
  604.     or.b    d0,$bfe001
  605.     bra.w    P35
  606.  
  607. P4B    moveq    #$f,d0
  608.     and.b    2(a5),d0
  609.     sub    d0,16(a5)
  610.     moveq    #113,d0
  611.     cmpi    16(a5),d0
  612.     ble.w    P35
  613.     move    d0,16(A5)
  614.     bra.w    P35
  615.  
  616. P4C    moveq    #$f,d0
  617.     and.b    2(a5),d0
  618.     add    d0,16(a5)
  619.     cmp    #856,16(a5)
  620.     ble.w    P35
  621.     move    #856,16(a5)
  622.     bra.w    P35
  623.  
  624. P4D    moveq    #$f,d0
  625.     and.b    2(a5),d0
  626.     add    d0,14(a5)
  627.     moveq    #64,d0
  628.     cmpi    14(a5),d0
  629.     bge.w    P35
  630.     move    d0,14(a5)
  631.     bra.w    P35
  632.  
  633. P4E    moveq    #$f,d0
  634.     and.b    2(a5),d0
  635.     mulu    #74,d0
  636.     move    d0,12(a5)
  637.     bra.w    P35
  638.  
  639. P4F    moveq    #$f,d0
  640.     and.b    2(a5),d0
  641.     move    d0,26(a5)
  642.     bra.w    P35
  643.  
  644. P50    moveq    #$f,d0
  645.     and.b    2(a5),d0
  646.     sub    d0,14(a5)
  647.     bpl.w    P35
  648.     clr    14(a5)
  649.     bra.w    P35
  650.  
  651. P51    move    42(a5),d0
  652.     eor    d0,d4
  653.     bra.w    P35
  654.  
  655. P52    moveq    #$f,d0
  656.     and.b    2(a5),d0
  657.     move    d0,P6D-P0(a3)
  658.     move    d0,P6E-P0(a3)
  659.     bra.w    P35
  660.  
  661. P53    move.b    2(a5),d0
  662.     cmp.b    #1,d0
  663.     bne.b    P54
  664.     move.b    d0,P69+1-P0(a3)
  665.     move.b    d0,P6A+1-P0(a3)
  666.     st    P6B-P0(a3)
  667.     bra.w    P35
  668. P54    move.b    d0,P69+1-P0(a3)
  669.     subq.b    #1,d0
  670.     move.b    d0,P6A+1-P0(a3)
  671.     clr    P6B-P0(a3)
  672.     bra.w    P35
  673.  
  674. P55    move.b    2(a5),d0
  675.     sub.b    d0,14+1(a5)
  676.     bpl.b    P56
  677.     clr    14(a5)
  678.     clr    8(a4)
  679.     bra.b    P58
  680. P56    moveq    #64,d0
  681.     cmp    14(a5),d0
  682.     bge.b    P57
  683.     move    d0,14(a5)
  684. P57    move    14(a5),8(a4)
  685.     
  686. P58    moveq    #$f,d0
  687.     and.b    22(a5),d0
  688.     lsl    #6,d0
  689.     
  690.     move.b    23(a5),d1
  691.     lsr    #1,d1
  692.     and    #$3e,d1
  693.     add    d1,d0
  694.  
  695.     move.w    P5E(pc,d0),d2
  696.  
  697.     move    16(a5),d0
  698.     tst.b    23(a5)
  699.     bmi.b    P59
  700.     add    d2,d0
  701.     bra.b    P5A
  702.  
  703. P59    sub    d2,d0
  704.  
  705. P5A    move    d0,6(a4)
  706.     move.b    22(a5),d0
  707.     lsr.b    #2,d0
  708.     and    #$3c,d0
  709.     add.b    d0,23(a5)
  710.     bra.w    P1C
  711.  
  712. P5B    moveq    #$f,d0
  713.     and.b    24(a5),d0
  714.     lsl    #6,d0
  715.     
  716.     move.b    25(a5),d1
  717.     lsr    #1,d1
  718.     and    #$3e,d1
  719.     add    d1,d0
  720.  
  721.     move    P5E(pc,d0),d2
  722.  
  723.     move    14(a5),d0
  724.     tst.b    25(a5)
  725.     bmi.b    P5C
  726.     add    d2,d0
  727.     cmp    #64,d0
  728.     ble.b    P5D
  729.     moveq    #64,d0
  730.     bra.b    P5D
  731.  
  732. P5C    sub    d2,d0
  733.     bpl.b    P5D
  734.     moveq    #0,d0
  735. P5D    move    d0,8(a4)
  736.     move.b    24(a5),d0
  737.     lsr.b    #2,d0
  738.     and    #$3c,d0
  739.     add.b    d0,25(a5)
  740.     bra.w    P1C
  741.  
  742.     incdir    "dh0:asm/sources/Player/"
  743. P5E    incbin    vibtab
  744.  
  745. P5F    dc    P35-P5F,P35-P5F,P35-P5F,P35-P5F,P42-P5F,P35-P5F,P35-P5F
  746.     dc    P45-P5F,P35-P5F,P35-P5F,P35-P5F,P39-P5F,P38-P5F,P40-P5F
  747.     dc    P48-P5F,P53-P5F
  748.  
  749. P60    move    P67(pc),$dff096
  750.     move.l    P71(pc),$78.w
  751.     tst.b    $bfdd00
  752. P61    move    #$2000,$dff09c
  753.     rte
  754.  
  755. P62    movem.l    d0/a0/a1,-(sp)
  756.     lea    $dff0a0,a1
  757.     move    P67(pc),d0
  758.  
  759.     move.l    4+P63(pc),a0
  760.     move.l    6(a0),(a1)
  761.     move    10(a0),4(a1)
  762.     move.l    4+P64(pc),a0
  763.     move.l    6(a0),16(a1)
  764.     move    10(a0),20(a1)
  765.     move.l    4+P65(pc),a0
  766.     move.l    6(a0),32(a1)
  767.     move    10(a0),36(a1)
  768.     move.l    4+P66(pc),a0
  769.     move.l    6(a0),48(a1)
  770.     move    10(a0),52(a1)
  771.  
  772.     tst.b    $bfdd00
  773.     move.b    #%10000000,$bfde00
  774.     move    #$2000,-4(a1)
  775.     movem.l    (sp)+,d0/a0/a1
  776.     rte
  777.  
  778. P63    ds    21
  779.     dc    1
  780. P64    ds    21
  781.     dc    2
  782. P65    ds    21
  783.     dc    4
  784. P66    ds    21
  785.     dc    8
  786. P0    dc    0
  787. P67    dc    $8000
  788. P68    dc    63
  789. P69    dc    6
  790. P6A    dc    5
  791. P6B    dc    0
  792. P6C    dc.l    0
  793. P6D    dc    0
  794. P6E    dc    0
  795. P6F    dc.l    0
  796. P70    dc.l    0
  797. P71    dc.l    0
  798. P72    dc.l    0
  799. P73    dc.l    0
  800.  
  801. */ end of file /*
  802.